home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 2 / CU Amiga Magazine's Super CD-ROM 02 (1996)(EMAP Images)(GB)[!][issue 1996-04].iso / magazine / amiga_e / amigae.jan.archive / 000052_crash!fwi.uva.nl!oortmers_Sun, 23 Jan 94 01:05:00 PST.msg < prev    next >
Text File  |  1994-02-17  |  7KB  |  157 lines

  1. Received: by bkhouse.cts.com (V1.17-beta/Amiga)
  2.       id <1n09@bkhouse.cts.com>; Sun, 23 Jan 94 01:05:00 PST
  3. Received: from mail.fwi.uva.nl by crash.cts.com with smtp
  4.     (Smail3.1.28.1 #18) id m0pNtwH-0001OKC; Sat, 22 Jan 94 17:48 PST
  5. Received: from gene.fwi.uva.nl by mail.fwi.uva.nl with SMTP (5.65c/5.1)
  6.           id AA17581; Sun, 23 Jan 1994 02:48:30 +0100
  7. Received: by gene.fwi.uva.nl
  8.           id AA25036; Sun Jan 23 02:48:28 1994
  9. Message-Id: <199401230148.AA25036@gene.fwi.uva.nl>
  10. Date: Sun, 23 Jan 1994 02:48:28 +0100
  11. Return-Path: <oortmers@fwi.uva.nl>
  12. X-Organisation: Faculty of Mathematics & Computer Science
  13.                 University of Amsterdam
  14.                 Plantage Muidergracht 24
  15.                 NL-1018 TV Amsterdam
  16.                 The Netherlands
  17. X-Phone:        +31 20 525 5200
  18. X-Telex:        16460 facwn nl
  19. X-Fax:          +31 20 525 5101
  20. From: oortmers@fwi.uva.nl (Wouter van Oortmerssen (Alfa_Inf92))
  21. To: amigae@bkhouse.cts.com
  22. Subject: E Statement, v5
  23.  
  24.  
  25.                            STATEMENT, v5
  26.            -> with additions about newest developments <-
  27.  
  28.                       The future of Amiga E
  29.  
  30.                     by Wouter van Oortmerssen
  31.  
  32. The question I get most from programmers is: when will the new version
  33. of E be out, what it will cost and what are it's features? since the
  34. answer is of interest to just about anybody working with E, I'll try to
  35. summarise it here.
  36.  
  37. First, my aim was to release a v2.5, however, I implemented a lot
  38. of stuff that was originally meant for v3.0, so now I'm skipping v2.5,
  39. and v3.0 will be the first release after v2.1b.
  40. The drawback ofcourse is that it will yet take a little longer before
  41. a new version comes out, and the good news is that we'll have v3.0
  42. features like full OO-ness relatively early. but more to that later.
  43.  
  44. The most current _beta_ version of E is v2.7a, and already has the
  45. following features:
  46.  
  47. - compilation to modules, one of the most important enhancements.
  48.   this allows you to write sources with OBJECTs, PROCs and CONSTs etc
  49.   in them, and have them compiled to a ".m" file for use in other programs.
  50.   any thinkable datahiding scheme supported.
  51.   The module system is very flexible and easy to use, and allows for
  52.   extremely fast linking.
  53. - error reconstruction: EC now exactly pinpoints the spot in the
  54.   source that caused the error
  55. - optimisations in the compiler: EC is significantly faster than
  56.   EC2.1b, even with all the new features and code-optimisations.
  57. - various optimisations in code-generation
  58. - Parts of the compiler have been rewritten and datastructures
  59.   reorganised for efficiency, this results in a reduction in EC's
  60.   memory consumption with 40% to 50%
  61. - default arguments a la C++: allows you to give parameters default
  62.   values incase the caller leaves out an argument.
  63.   PROC bla(a,b=1,c=NIL:PTR TO extrainfo)
  64. - kick 3.0 modules
  65. - object inheritance (see below for other OO features)
  66.   lets you inherit object members and methods from other objects,
  67.   and create hierarchies of datatypes with shared behaviour
  68.   OBJECT circle OF location
  69. - multiple returnvalues and multiple-value assignments.
  70.   functions can now return more than one value, and assignment
  71.   statements can store in more than one var.
  72.   a,b,c:=func(); RETURN 1,2,3
  73. - symbolhunks for use with profiler, debuggers etc.
  74. - .o to .m file converter (for assembly)
  75. - numerous small bugs fixed and small enhancements made
  76. - register allocation
  77.   v2.1b did hardly put variables in registers, thus code that depends
  78.   largely on the time needed to access a variabele would be slower.
  79.   EC can either compute the best possible register usage itself,
  80.   or the programmer can assign registers.
  81. - various new code optimisations, for different sorts of expressions,
  82.   library calls etc. also some special opti's for 020+ machines.
  83. - module caching: this feature allows EC to keep modules
  84.   in memory between compilations. effectively this means that
  85.   the first time you compile a source which needs 10 modules
  86.   EC will load them all from disk, the second upto the n-th
  87.   time it doesn't have to load any. Because the new E can have
  88.   huge apps seperated over many modules, compile/link times for
  89.   large programs can be incredibly fast.
  90. - the NEW operator allows for quick and easy dynamic
  91.   memory allocation, with automatic exception raising.
  92.   NEW p; NEW [1,a,bla()]:obj
  93. - increasing number of great modules for all sorts of tasks. the plan
  94.   is that E will provide an enormous amount of these modules to allow
  95.   quick programming of large, quality apps. v3.0 will _probably_ already
  96.   have modules for:
  97.   * easy font sensitive resizable auto-organising GUI's
  98.   * both simple 3d vectors and fully fledged realtime
  99.     double-buffered 3d filled vectors
  100.   * protracker player
  101.   * iff loader/saver etc.
  102.   * hashing
  103.   * easy file access
  104.   * lexical analysing
  105.   * garbage collected LISP-lists
  106.   * all sorts of Amiga.lib and amiga support routines
  107.   and much more. (this is just an example selection)
  108. - a new SELECT OF that understands complex CASE's like
  109.   CASE "a" TO "z", "A" TO "Z", "0" TO "9", "_"
  110.   and is also much faster than the other SELECT
  111. - Unification: this is a feature normally only found in
  112.   high-level functional and logic programming languages. It
  113.   allows for the pattern-matching of nested structures in
  114.   expressions, and bind variables along the way. When used
  115.   properly, it can greatly reduce programming time to implement
  116.   complex algorithms involving dynamic datastructures.
  117.   IF exp <=> [BLA,[BLERK,y,0],x] THEN ...
  118. - lots of great external utilities:
  119.   * Build, a full featured Make utility for E
  120.   * E-Yacc (and probaly also E-Lex), parser and lexical
  121.     analyser generators for E
  122.   * o2m, converts your macro-assembler .o files to modules
  123. - Datahiding with public/private.
  124.   allows members and methods to be private, i.e. invisable for
  125.   the user of a class.
  126. - virtual methods and method inheritance.
  127.   in the E Object Model, object-polymorhism plays a bigger role than
  128.   in languages like C++ which also have fake (non-virtual) methods.
  129.   A method in E is a PROC defined on an object, however it functions
  130.   quite different from a PROC since which methods are invocated on
  131.   an objects is determined at run time.
  132. - much more free format source
  133. - ability to dereference pointers beyond just one ".", new types
  134.   allowed in OBJECTs.
  135. - (very likely) an absolutely GREAT editor written in E, called EE
  136.   (courtesy of Barry Wills), from which you can edit and compile
  137.   your E sources. It does all the great things any modern editor
  138.   can do an besides that it has many E specific features, such as
  139.   folding on PROCs etc. a must-have.
  140.  
  141. (still missing from this are REALs, but they'll definitly be in the
  142. next release.)
  143.  
  144. Last but not least there is the question what 3.0 will cost. Well,
  145. I don't know myself: I'd like to sell it for a very low-profit price
  146. so that everybody can easily affort it. probably this won't be much
  147. more than the price for a shareware compiler. Also I'll plan on
  148. distributing a PD demo version of v3.0. When I feel like it, I might
  149. also let a commercial publisher take care of distribution etc., when
  150. a suitable one comes with a good deal.
  151.  
  152. so, I hope all this information gave some of you an insight of what's
  153. coming... 
  154.  
  155. Greetings to all E programmers in the world,
  156.  
  157. Wouter.